﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Sispe.Entities;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace Sispe.Repository.Mapping
{
    public class HOJA_FIN_RECORRIDO_LIQUIDACIONESMap : EntityTypeConfiguration<HOJA_FIN_RECORRIDO_LIQUIDACIONES>
    {
        public HOJA_FIN_RECORRIDO_LIQUIDACIONESMap()
        {
            // Primary Key
            this.HasKey(t => t.IdLiquidacion);

            // Properties
            this.Property(t => t.IdLiquidacion)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

            this.Property(t => t.RRHH_OtrosComentario)
                .HasMaxLength(300);

            this.Property(t => t.LA_EPPComentario)
                .HasMaxLength(500);

            this.Property(t => t.LA_OtrosComentario)
                .HasMaxLength(300);

            this.Property(t => t.LS_OtrosComentario)
                .HasMaxLength(300);

            this.Property(t => t.LT_OtrosComentario)
                .HasMaxLength(300);

            this.Property(t => t.AD_OtrosComentario)
                .HasMaxLength(300);

            this.Property(t => t.OP_OtrosComentario)
                .HasMaxLength(300);

            // Table & Column Mappings
            this.ToTable("HOJA_FIN_RECORRIDO_LIQUIDACIONES");
            this.Property(t => t.IdLiquidacion).HasColumnName("IdLiquidacion");
            this.Property(t => t.RRHH_Fotocheck).HasColumnName("RRHH_Fotocheck");
            this.Property(t => t.RRHH_ExamenRetiro).HasColumnName("RRHH_ExamenRetiro");
            this.Property(t => t.RRHH_Otros).HasColumnName("RRHH_Otros");
            this.Property(t => t.RRHH_OtrosComentario).HasColumnName("RRHH_OtrosComentario");
            this.Property(t => t.RRHH_Fecha).HasColumnName("RRHH_Fecha");
            this.Property(t => t.RRHH_VistoBueno).HasColumnName("RRHH_VistoBueno");
            this.Property(t => t.LA_EPP).HasColumnName("LA_EPP");
            this.Property(t => t.LA_EPPComentario).HasColumnName("LA_EPPComentario");
            this.Property(t => t.LA_Radio).HasColumnName("LA_Radio");
            this.Property(t => t.LA_Otros).HasColumnName("LA_Otros");
            this.Property(t => t.LA_OtrosComentario).HasColumnName("LA_OtrosComentario");
            this.Property(t => t.LA_Fecha).HasColumnName("LA_Fecha");
            this.Property(t => t.LA_VistoBueno).HasColumnName("LA_VistoBueno");
            this.Property(t => t.LS_Laptop).HasColumnName("LS_Laptop");
            this.Property(t => t.LS_Desktop).HasColumnName("LS_Desktop");
            this.Property(t => t.LS_CorreoCorporativo).HasColumnName("LS_CorreoCorporativo");
            this.Property(t => t.LS_Otros).HasColumnName("LS_Otros");
            this.Property(t => t.LS_OtrosComentario).HasColumnName("LS_OtrosComentario");
            this.Property(t => t.LS_Fecha).HasColumnName("LS_Fecha");
            this.Property(t => t.LS_VistoBueno).HasColumnName("LS_VistoBueno");
            this.Property(t => t.LT_Vehiculo).HasColumnName("LT_Vehiculo");
            this.Property(t => t.LT_Otros).HasColumnName("LT_Otros");
            this.Property(t => t.LT_OtrosComentario).HasColumnName("LT_OtrosComentario");
            this.Property(t => t.LT_Fecha).HasColumnName("LT_Fecha");
            this.Property(t => t.LT_VistoBueno).HasColumnName("LT_VistoBueno");
            this.Property(t => t.LO_Fecha).HasColumnName("LO_Fecha");
            this.Property(t => t.LO_VistoBueno).HasColumnName("LO_VistoBueno");
            this.Property(t => t.AD_Celular).HasColumnName("AD_Celular");
            this.Property(t => t.AD_Modem).HasColumnName("AD_Modem");
            this.Property(t => t.AD_Camara).HasColumnName("AD_Camara");
            this.Property(t => t.AD_Otros).HasColumnName("AD_Otros");
            this.Property(t => t.AD_OtrosComentario).HasColumnName("AD_OtrosComentario");
            this.Property(t => t.AD_Fecha).HasColumnName("AD_Fecha");
            this.Property(t => t.AD_VistoBueno).HasColumnName("AD_VistoBueno");
            this.Property(t => t.OP_InformeFisico).HasColumnName("OP_InformeFisico");
            this.Property(t => t.OP_InformeDigital).HasColumnName("OP_InformeDigital");
            this.Property(t => t.OP_Otros).HasColumnName("OP_Otros");
            this.Property(t => t.OP_OtrosComentario).HasColumnName("OP_OtrosComentario");
            this.Property(t => t.OP_Fecha).HasColumnName("OP_Fecha");
            this.Property(t => t.OP_VistoBueno).HasColumnName("OP_VistoBueno");
            this.Property(t => t.ADGRAL_VistoBueno).HasColumnName("ADGRAL_VistoBueno");
            this.Property(t => t.ADGRAL_Fecha).HasColumnName("ADGRAL_Fecha");

            // Relationships
            this.HasRequired(t => t.LIQUIDACION)
                .WithOptional(t => t.HOJA_FIN_RECORRIDO_LIQUIDACIONES);

        }
    }
}
